package bupt.party.online.service;

import java.util.List;

import bupt.party.online.model.LearnCenter;

public interface ILearnCenterService {
	
	/**
	 * 保存学习园地对应的一篇文章
	 * @param learnCenter
	 */
	public void saveLearnCenter(LearnCenter learnCenter);
	
	/**
	 * 删除学习园地对应的一篇文章，即把删除标记位isDelete置为1
	 * @param learnCenter
	 */
	public void deleteLearnCenter(LearnCenter learnCenter);
	
	/**
	 * 更新学习园地对应的一篇文章
	 * @param learnCenter
	 */
	public void updateLearnCenter(LearnCenter learnCenter);
	
	/**
	 * 根据LearnCenter的标题来分页查找
	 * @param title
	 * @param tag    学习园地的标记
	 * @param first  第一条记录的索引
	 * @param pageSize  查找的记录的个数
	 * @return
	 */
	public List<LearnCenter> findLearnCenterByTitle(String title, Integer tag, int first, int pageSize);
	
	/**
	 * 根据LearnCenter的标题来查找个数
	 * @param title
	 * @return
	 */
	public int findLearnCenterCountByTitle(String title, final Integer tag);
	
	/**
	 * 根据id和tag来查找某条LearnCenter的内容
	 * @param id
	 * @param tag
	 * @return
	 */
	public LearnCenter findLearnCenterById(Integer id);
	
	/**
	 * 增加符合id和tag某条LearnCenter的浏览次数加1
	 * @param id
	 * @param tag
	 */
	public void addLearnCenterVisitsCount(Integer id);
	
	/**
	 * 根据id来删除学习园地
	 * @param id
	 */
	public void deleteLearnCenterById(Integer id);
	
	/**
	 * 根据LearnCenter的标题来分页查找，主要用于后台
	 * @param title
	 * @param tag    学习园地的标记
	 * @param first  第一条记录的索引
	 * @param pageSize  查找的记录的个数
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public List findAdminLearnCenterByTitle(String title, Integer tag, final int first, final int pageSize);
	
	/**
	 * 查看最近的4条学习公告的内容
	 * @return
	 */
	public List getLatest4Notices();
	
}
